第62题(第3空)现需要申请一些场地举办一批活动,每个活动有开始时间和结束时间。在同一个场地,如果一个活动结束之前,另一个活动开始,即两个活动冲突。若活动A从1时间开始,5时间结束,活动B从5时间开始,8时间结束,则活动A和B不冲突。现要计算
n个活动需要的最少场地数。
求解该问题的基本思路如下(假设需要场地数为
m,活动数为
n,场地集合为
P1,
P2,…,
Pm),初始条件
Pi均无活动安排:
( )采用快速排序算法对
n个活动的开始时间从小到大排序,得到活动
a1,
a2,…,
an。对每个活动
ai,
i从1到
n,重复步骤
( )、
( )和
( );
( )从
P1开始,判断
ai与
P1的最后一个活动是否冲突,若冲突,考虑下一个场地
P2,…;
( )一旦发现
ai与某个
Pj的最后一个活动不冲突,则将
ai安排到
Pj,考虑下一个活动;
( )若
ai与所有已安排活动的
Pj的最后一个活动均冲突,则将
ai安排到一个新的场地,考虑下一个活动;
( )将
n减去没有安排活动的场地数即可得到所用的最少场地数。
算法首先采用了快速排序算法进行排序,其算法设计策略是(60);后面步骤采用的算法设计策略是(61)。整个算法的时间复杂度是
( )。下表给出了
n=11的活动集合,根据上述算法,得到最少的场地数为
( )。